package com.sxkf.template.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.sxkf.template.entity.Order;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sxkf.template.entity.OrderDetail;
import com.sxkf.template.entity.Refund;
import com.sxkf.template.vo.request.order.CreateOrderVo;
import com.sxkf.template.vo.request.order.DeliverOrderVo;

import java.math.BigDecimal;

public interface OrderService extends IService<Order>{
    String createOrderByCart(CreateOrderVo createOrderVo);

    String createOrderSingle(CreateOrderVo createOrderVo);

    String toPay(String orderId,String payType);

    void cancel(String orderId);

    void refundOrder(String orderNo, BigDecimal refundPrice);

    void paySuccess(Order order);

    Order getOrderDetail(String orderId);

    IPage<Order> userGetList(Integer pageNo, Integer pageSize, String userId,String orderId, String state);

    IPage<Order> busGetList(Integer pageNo, Integer pageSize, String storeId,String orderId, String spellOut, String state);

    IPage<Order> spellOutList(Integer pageNo, Integer pageSize, String userId, String orderState, String spellOutState);

    Boolean deliver(DeliverOrderVo deliverOrderVo);

    Boolean rerv(String userId, String orderId);

    Boolean refund(Refund refund);

    Boolean reject(String refundId);

    String refundStatus(String refundId);

    Boolean delete(String orderId);

    void notice(String orderId);

    IPage<OrderDetail> backSpellOutList(Integer pageNo, Integer pageSize, String busUserId, String orderState, String spellOutState);
}
